题目描述
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
示例 1:
1 | 输入: [7,1,5,3,6,4] |
示例 2:
1 | 输入: [7,6,4,3,1] |
限制:
$0 <= 数组长度 <= 10^5$
注意: 本题与主站 121 题相同:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
算法
(贪心,线性扫描) $O(n)$
$minv$ 表示前 $i - 1$ 天中的买入的最低价格,假设初始值为 $prices[0]$,定义变量 $res$ 表示利润
从第二天开始枚举,计算并更新利润 $res$,更新 $minv$
时间复杂度
$O(n)$
空间复杂度
$O(1)$
代码
1 | class Solution { |